package com.xinggq.auth.api.itf;

import com.xinggq.auth.api.dto.login.AuthSafeUserInfoDTO;
import com.xinggq.common.CommonResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 令牌管理API接口
 *
 * @author xinggq
 * @since 2024-10-20
 */
@Tag(name = "令牌管理", description = "令牌管理相关接口")
@RequestMapping("/auth/token")
public interface TokenManagerApi {

  /**
   * 验证令牌并获取用户信息
   *
   * @param token 访问令牌
   * @return 用户信息，如果令牌无效则返回null
   */
  @Operation(summary = "验证令牌并获取用户信息")
  @GetMapping("/validate")
  CommonResult<AuthSafeUserInfoDTO> validateTokenAndGetUserInfo(
      @Parameter(description = "访问令牌") @RequestParam("token") String token);

}